package shm.capaDatos.administradores;

import java.util.List;

import javax.ejb.Local;

import shm.capaDatos.vo.EstadoProyectoVO;
import shm.capaDatos.vo.PermisoVO;
import shm.capaDatos.vo.ProyectoVO;
import shm.capaDatos.vo.UsuarioVO;
import shm.excepciones.BuscarEntidadException;
import shm.excepciones.EliminarEntidadException;
import shm.excepciones.EntidadesHuerfanasException;
import shm.excepciones.GuardarEntidadException;

@Local
public interface AdministradorProyectos {
	public ProyectoVO guardar(ProyectoVO proyecto, UsuarioVO usuarioLogueado) throws GuardarEntidadException;
	public ProyectoVO buscar(ProyectoVO proyecto, UsuarioVO usuarioLogueado) throws BuscarEntidadException;
	public List<ProyectoVO> buscarLista(ProyectoVO proyecto, UsuarioVO usuarioLogueado) throws BuscarEntidadException;
	public void eliminar(ProyectoVO proyecto, UsuarioVO usuarioLogueado) throws EliminarEntidadException, EntidadesHuerfanasException;
	public List<EstadoProyectoVO> obtenerEstadosProyectos();
	public EstadoProyectoVO obtenerEstadoProyecto(EstadoProyectoVO estado);
	public List<PermisoVO> obtenerPermisos(ProyectoVO proyecto, UsuarioVO usuario);
	
}
